/*
 * Copyright 2004-2005 asoft
 * 本软件及其所有拷贝的名称，与光盘上或本软件中注明的公司同在。
 * 本软件及文档享有版权，并受国家版权法及国际协约条款的保护。
 * 您不可以从本软件中去掉其版权声明；并保证为本软件的拷贝（本部或部分）* 复制版权声明。
 * 您同意制止以任何形式非法拷贝本软件及文档。
 * 版权信息参见：
 *      http://www.asoft.cn/licenses
 */

package com.asoft.common.templet;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.testng.Assert;

import com.asoft.common.util.mvc.config.FormBeanConfigReader;
import com.asoft.common.util.mvc.config.ModuleConfigReader;
import com.asoft.common.util.mvc.formbean.FormBeanMaker;
import com.asoft.common.util.mvc.valid.ValidatedResult;

/**
 * 校验脚本单元测试用例模板
 *
 * @author amonlei
 *
 */

public abstract class ValidateScriptTestCaseTemplet extends ValidateTestCaseTemplet
{
        static Logger logger = Logger.getLogger(ValidateScriptTestCaseTemplet.class);
        
        private String serviceUrl;
        
        public void  setServiceUrl(String serviceUrl)
        {
                this.serviceUrl = serviceUrl;
        }
        
        // 跑校验脚本
        public ValidatedResult runScript(HttpServletRequest request) throws Exception
        {
                this.initApplicationContext();
                Assert.assertNotNull(this.serviceUrl);
                String[] mms = this.serviceUrl.split("\\.");
                Assert.assertEquals(mms.length,3);
                String moduleName = mms[0]; // 客户端必须提交过来
                String examQuestion = mms[1]; // 客户端必须提交过来
                String serviceName = mms[2]; // 客户端必须提交过来
                FormBeanMaker fbMaker;
                ModuleConfigReader mcReader = new ModuleConfigReader(moduleName);
                fbMaker = new FormBeanMaker(request,
                                            mcReader.getElementByModelIdNServiceId(examQuestion,
                                                                                   serviceName),
                                            new FormBeanConfigReader(moduleName,
                                                                     examQuestion),
                                            this.getApplicationContext());
                fbMaker.making();
                ValidatedResult vr = fbMaker.getVR();
                logger.info("校验结果：" + vr);
                return vr;
        }
}
